
/**
 * 以下as为调用硬件ocx的方法 ，包含三个模块 扫描仪、盖章机、打印机
 * 
 * @ author zyl
 * */
package com.sinodata.atmc.common {
	import flash.external.ExternalInterface;
	
	import mx.controls.Alert;

	public class CallingOCX {
		
		public function CallingOCX() {}
		
		//=====================影像编码显示模块=====================
		
		/**
		 * 影像64位编码
		 * @param str 需要编码图片的地址
		 * @return 图像编码后的64位码
		 * 
		 * */
		public function ImagesQode(str:String):String {
			var result:String = ExternalInterface.call("getFiledata",str);
			return result;
		}
		
		
		//======================获取设备状态模块====================
		
		/**
		 * 
		 * 获取设备号和网点号 
		 * @return 设备编号，网点号，电子柜员号
		 * 
		 * */
		public function getEquipmentInfo():String {
			var result:String = ExternalInterface.call("getEquipmentInfo");
			return result;
		}
		
		/**
		 * 
		 * 获取电子柜员号和网点号 
		 * @return 电子柜员号，网点号
		 * 
		 * */
		public function getDevice():String {
			var result:String = ExternalInterface.call("getDevice");
			return result;
		}
		
		
		//==================身份证阅读器模块======================
		
		/**
		 * 
		 * 打开身份证阅读器
		 * @return "0"表示成，其他表示失败
		 * 
		 * */
		public function openIDReader():String {
			var result:String = ExternalInterface.call("openIDReader");
			return result;
		}
		
		/**
		 * 
		 * 关闭身份证阅读器
		 * 
		 * */
		public function closeIDReader():String {
			var result:String = ExternalInterface.call("closeIDReader");
			return result;
		}
		
		/**
		 * 
		 * 等待扫描身份证
		 * @return "0"表示成功，"-1" 表示异常，"-8" 表示有一个一部命令正在执行
		 * 
		 * */
		public function waitScanID():String {
			var result:String = ExternalInterface.call("waitScanID");
			return result;
		}
		
		/**
		 * 
		 * 读取扫描的结果
		 * @param 1 身份证信息，2身份证正面影像，3身份证背面影像，4身份证头像
		 * @return  字符串，包含所要信息，格式^xxx^xxxx
		 * 
		 * */
		public function scanResultID(type:int):String {
			var result:String = ExternalInterface.call("scanResultID",type);
			return result;
		}
		
		
		//====================ID卡读卡器模块======================
		/**
		 * 
		 * 打开ID卡读卡器
		 * @return 0表示成功，-1表示失败
		 * 
		 * */
		public function openIDCReader():String {
			var result:String = ExternalInterface.call("ID_idcOpen");
			return result;
		}
		
		/**
		 * 
		 * 关闭ID卡读卡器
		 * @return 0表示成功，-1表示失败
		 * 
		 * */
		public function closeIDCReader():String {
			var result:String = ExternalInterface.call("ID_idcClose");
			return result;
		}
		
		/**
		 * 
		 * 等待放入ID卡进行扫描
		 * @return "0"表示成功，"-1" 表示异常，"-8" 表示有一个一部命令正在执行 
		 * 
		 * */
		public function waitIDCScan():String {
			var result:String = ExternalInterface.call("ID_idcScanAsyn");
			return result;
		}
		
		
		//======================盖章机模块========================
		
		/**
		 * 打开盖章机
		 * @return 成功 0，失败 -1
		 * 
		 * */
		public function StampOpen():String {
			var result:String = ExternalInterface.call("Stamp_OpenStamp");
			return result;
			//Alert.show("盖章及======"+result);
		}
		
		/**
		 * 初始化盖章机
		 * @return 成功 0，失败 -1
		 * */
		public function StampInit():String {
			var result:String = ExternalInterface.call("Stamp_Initstamp");
			return result;
		}
		
		
		//======================打印机模块========================
		
		/**
		 * 设置打印机参数
		 * @param htmlCode  需要打印的html页面
		 * @param type  需要打印的格式("huizhi"表示回执单,"gazhangqd"轧帐清单,"hddy"回单打印,"gazhangzs"轧帐总数)
		 * @return  成功    0，失败    -1
		 * 
		 */		
		public function PrinterParameters(htmlCode:String,type:String):String {
			var result:String = ExternalInterface.call("Receipt_Printformset",htmlCode,type);
			return result;
		}
		
		/**
		 * 启动打印
		 * @return 成功 0，失败 -1
		 * */
		public function PrinterStart():String {
			var result:String = ExternalInterface.call("Receipt_Printform");
			return result;
		}
		
		
		//======================描仪模块========================
		
		/**
		 * 扫描仪初始化和设置扫描参数
		 * @return 成功 0，失败 -1
		 * */
		public function ReaderInit():String {
			var result:String = ExternalInterface.call("Check_Readeroninit");
			return result;
		}
		
		/**
		 * 打开扫描仪口
		 * @return 成功 0，失败 -1，放入支票超时 -2（暂时没有）
		 * */
		public function ReaderOpen():String {
			var result:String = ExternalInterface.call("Check_Readputdoc");
			return result;
		}
		
		/**
		 * 扫描票据
		 * @return 失败 -1， 票据口无票 -4，伪票  0
		 * "CHEQUE" 票据类型支票  ，"DJPZ"  票据类型贷记凭证，
		 * "JZD"  票据类型进账单，"TCZFPZ"  票据类型同城支付凭证
		 * "JSYWSQS"  票据类型结算业务申请书，"OTHERVOUCHER"  其他票据类型
		 * */
		public function ReaderScan():String {
			var result:String = ExternalInterface.call("Check_Readerprocessform");
			return result;
		}
		
		/**
		 * 关闭扫描仪闸口
		 * @return 成功 0，失败 -1，票据口有票 -13
		 * */
		public function ReaderClose():String {
			var result:String = ExternalInterface.call("Check_Readercloseshutter");
			return result;
		}
		
		/**
		 * 获取扫描信息
		 * @param str 需要获取的票据信息(正面路径  "0"，反面路径 "1"，MICR内容  "2"，OCR内容 "3"，判断底纹是否符合  "4",获得支票二维码 "5",获得扫描失败具体信息 "6")
		 * @return 字符串 表示获得到的信息   ，  "-1"表示没有获得到信息 ，（传的参数为0、1、2、3时）,false 底纹验证失败，true 底纹验证成功（传的参数为4时）
		 * 
		 * */
		public function ReaderGetScanInfo(str:String):* {
			var result:String;
			if(str == "4") {
				var temp:Boolean = ExternalInterface.call("getScanInfo",str);
				if(temp == false){
					result = "0";
				} else {
					result = "1";
				}
				return result; 
			} else {
				result = ExternalInterface.call("getScanInfo",str);
				return result; 
			}
			
		}
		
		/**
		 * 存票
		 * @return 成功0，失败-1
		 * 
		 * */
		public function ReaderSave():String {
			var result:String = ExternalInterface.call("Check_ReaderacceptdocSave");
			return result;
		}
		
		/**
		 * 退票
		 * @return 成功 0，失败-1
		 * */
		public function ReaderBack():String {
			var result:String = ExternalInterface.call("Check_ReaderacceptdocBack");
			return result;
		}
		
		/**
		 * 关闭废票口
		 * @param closeTime 关闭废票口的等待时间
		 * @return 成功 0，失败 -1
		 * 
		 * */
		public function ReaderShutter(closeTime:int):String {
			var result:String = ExternalInterface.call("Check_Readerretractdoc",closeTime);
			return result;
		}
		
		//=================读卡器模块=======================
		
		public function IcCardInit():String{
			var open:String =  ExternalInterface.call("ID_idcOpen");
		     return open;
		}
		public function WaitCard():String{
		var begin:String=	ExternalInterface.call("ID_idcScanAsyn");
		return begin;
		}
		public function closeCard():String{
			var isClose:String = ExternalInterface.call("ID_idcClose");
			return isClose;
		}
		
		//===================密码键盘模块=================
		
		/**
		 * 密码键盘打开和初始化
		 * @return "0"表示成功       "-1"表示失败
		 * */
		public function KeyPressInit():String{
			var pinpadOpen:String = ExternalInterface.call("pinpadOpen");
			if(pinpadOpen == "0"){
				var	pinpadinit:String = ExternalInterface.call("pinpadInit");
				return pinpadinit;
			} else {
				return pinpadOpen;
			}
		}
		
		public function BeginInput():String{
		var begin:String=	ExternalInterface.call("beginInput0");
			return begin;
		}
		
		public function CloseInput():String{
		var close:String  =	ExternalInterface.call("endInput");
			return close;
		}

		
		public function closePinpad():String {
			var result:String = ExternalInterface.call("closePinpad");
			return result;
		}

		
		//============================手写输入模块===============
		public function callOpen():void{
			ExternalInterface.call("openwrite");
		}
		public function callClose():void{
			ExternalInterface.call("closewrite");
		}

	}
}